package cn.syy.interceptor;

import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.core.util.StrUtil;
import feign.RequestInterceptor;
import feign.RequestTemplate;

public class FeignTokenInterceptor implements RequestInterceptor {
    /**
     * 每次发起feign请求前都会获取上一次请求头中的token，然后在携带token进入到下一次的请求中
     * @param requestTemplate
     */
    @Override
    public void apply(RequestTemplate requestTemplate) {
        // 获取token的名字和值
        String tokenName = StpUtil.getTokenName();
        String tokenValue = StpUtil.getTokenValue();
        // 判断token的名字和值是否为空，不为空就携带上一次的token，主要是为了防止是配置了放行的进来后把空的token携带到后续的请求中
        if (StrUtil.isNotEmpty(tokenName)&&StrUtil.isNotEmpty(tokenValue)){
            requestTemplate.header(tokenName,tokenValue);
        }
    }
}
